//
//  main.swift
//  14.where和模式匹配
//
//  Created by 左忠飞 on 2021/8/16.
//

import Foundation

//在switch语句汇总,可以用where限制某些条件
let names = ["王小二","张三","李四","王二小"]

names.forEach { name in
    switch name {
    case let x where x.hasPrefix("王"):
        print("\(x)是笔者本家")
    default:
        print("你好:\(name)")
    }
}

//在for循环中也可以使用where来做条件限定

let nums:[Int?] = [48,99,nil]
let n = nums.compactMap{$0}
for score in n where score > 60 {
    print("及格了 - \(score)")
}

//我们可以对可选绑定进行条件限定,不过在swift3中,if let 和 guard let 之后不在使用where,而是和普通条件判断一样,用逗号写在if 或者 guard的后面
nums.forEach { num in
    if let score = num,score > 60 {
        print("及格了 = \(score)")
    }else {
        print(":(")
    }
}
